Ví dụ Phương_pháp_Euler

Cho bài toán giá trị ban đầu

y ′ = y , y ( 0 ) = 1 , {\displaystyle y'=y,\quad y(0)=1,}

chúng ta muốn sử dụng phương pháp Euler để xấp xỉ y ( 4 ) {\displaystyle y(4)} .[5]

Sử dụng kích thước bước bằng 1 (h = 1)

Minh họa tích phân số cho phương trình y ′ = y , y ( 0 ) = 1. {\displaystyle y'=y,y(0)=1.} Màu xanh da trời là phương pháp Euler; màu xanh lá cây làphương pháp điểm giữa; màu đỏ là lời giải chính xác, y = e t . {\displaystyle y=e^{t}.} Kích thước bước là h = 1.0.

Phương pháp Euler là:

y n + 1 = y n + h f ( t n , y n ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).\qquad \qquad }

vì vậy trước tiên chúng ta phải tính toán f ( t 0 , y 0 ) {\displaystyle f(t_{0},y_{0})} . Trong phương trình vi phân đơn giản này, hàm f {\displaystyle f} được định nghĩa bởi f ( t , y ) = y {\displaystyle f(t,y)=y} . Chúng ta có

f ( t 0 , y 0 ) = f ( 0 , 1 ) = 1. {\displaystyle f(t_{0},y_{0})=f(0,1)=1.\qquad \qquad }

Bằng cách thực hiện bước trên, chúng ta đã tìm được độ dốc của đường thẳng tiếp tuyến với đường cong lời giải tại điểm ( 0 , 1 ) {\displaystyle (0,1)} .

Nhớ lại rằng độ dốc được định nghĩa là sự thay đổi trong y {\displaystyle y} chia cho sự thay đổi trong t {\displaystyle t} , tức là Δ y / Δ t {\displaystyle \Delta y/\Delta t} .

Bước tiếp theo là nhân giá trị trên với kích thước bước h {\displaystyle h} , cái chúng ta lấy bằng một ở đây: 

h ⋅ f ( y 0 ) = 1 ⋅ 1 = 1. {\displaystyle h\cdot f(y_{0})=1\cdot 1=1.\qquad \qquad }

Bởi vì kích thước bước là sự thay đổi trong t {\displaystyle t} , khi chúng ta nhân kích thước bước và độ dốc của tiếp tuyến, chúng ta có được sự thay đổi trong giá trị y {\displaystyle y} . Giá trị này sau đó sẽ được thêm vào giá trị y {\displaystyle y} ban đầu để có được giá trị tiếp theo được sử dụng để tính toán.

y 0 + h f ( y 0 ) = y 1 = 1 + 1 ⋅ 1 = 2. {\displaystyle y_{0}+hf(y_{0})=y_{1}=1+1\cdot 1=2.\qquad \qquad }

Các bước trên sẽ được lặp đi lặp lại để tìm ra y 2 {\displaystyle y_{2}} , y 3 {\displaystyle y_{3}} và y 4 {\displaystyle y_{4}} .

y 2 = y 1 + h f ( y 1 ) = 2 + 1 ⋅ 2 = 4 , y 3 = y 2 + h f ( y 2 ) = 4 + 1 ⋅ 4 = 8 , y 4 = y 3 + h f ( y 3 ) = 8 + 1 ⋅ 8 = 16. {\displaystyle {\begin{aligned}y_{2}&=y_{1}+hf(y_{1})=2+1\cdot 2=4,\\y_{3}&=y_{2}+hf(y_{2})=4+1\cdot 4=8,\\y_{4}&=y_{3}+hf(y_{3})=8+1\cdot 8=16.\end{aligned}}}

Do tính chất lặp đi lặp lại của thuật toán này, nên tổ chức các bước tính toán dưới dạng biểu đồ, như thấy bên dưới, để tránh tạo ra các sai sót.

n {\displaystyle n} y n {\displaystyle y_{n}} t n {\displaystyle t_{n}} f ( t n , y n ) {\displaystyle f(t_{n},y_{n})} h {\displaystyle h} Δ y {\displaystyle \Delta y} y n + 1 {\displaystyle y_{n+1}}
0101112
1212124
2424148
38381816

Đáp án cuối cùng là y 4 = 16 {\displaystyle y_{4}=16} . Lời giải chính xác của phương trình vi phân là y ( t ) = e t {\displaystyle y(t)=e^{t}} , vì vậy y ( 4 ) = e 4 ≈ 54.598 {\displaystyle y(4)=e^{4}\approx 54.598} . Như vậy, lời giải gần đúng của phương pháp Euler không thật sự tốt trong trường hợp này. Tuy nhiên, như hình vẽ cho thấy, ứng xử của nó là đúng về mặt định tính.

Sử dụng các kích thước bước khác

Với cùng minh họa cho trường hợp h = 0.25.

Như đã nói trong phần giới thiệu, phương pháp Euler sẽ chính xác hơn nếu kích thước bước h {\displaystyle h} nhỏ hơn. Bảng dưới đây cho thấy kết quả với các kích thước bước khác nhau. Hàng trên cùng tương ứng với ví dụ trong phần trước, và hàng thứ hai được minh họa trong hình.

step sizeresult of Euler's methoderror
11638.598
0.2535.5319.07
0.145.269.34
0.0549.565.04
0.02551.982.62
0.012553.261.34

Sai số được ghi ở cột cuối cùng của bảng là sự khác biệt giữa lời giải chính xác tại t = 4 {\displaystyle t=4} và lời giải gần đúng Euler. Ở dưới cùng của bảng, kích thước bước bằng một nửa kích thước bước ở hàng trên nó, và sai số cũng bằng khoảng một nửa sai số trong dòng trên nó. Điều này cho thấy rằng sai số gần như là tỷ lệ với kích thước bước, ít nhất là đối với các giá trị kích thước bước tương đối nhỏ. Điều này nói chung, cũng đúng cho các phương trình khác; xem phần Sai số cắt cụt tổng thể để biết thêm chi tiết.

Các phương pháp khác, chẳng hạn như phương pháp điểm giữa cũng được minh họa trên các hình, và có vẻ chính xác hơn: sai số của phương pháp điểm giữa gần như tỷ lệ thuận với bình phương của kích thước bước. Vì lý do này, phương pháp Euler được gọi là một phương pháp bậc nhất, trong khi phương pháp điểm giữa là phương pháp bậc hai.

Chúng ta có thể ngoại suy từ bảng trên rằng kích thước bước cần thiết để có được một đáp án chính xác đến ba chữ số thập phân là khoảng 0,00001, có nghĩa là chúng ta cần 400.000 bước. Con số bước rất lớn này đòi hỏi một chi phí tính toán cao. Vì lý do này, người ta thường sử dụng các phương pháp bậc cao, thay thế cho phương pháp Euler, như là các phương pháp Runge-Kutta hoặc các phương pháp đa bước tuyến tính, đặc biệt là nếu muốn đạt được độ chính xác cao.[6]